home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / nt / vnt101.exe / OEMSETUP.INF < prev    next >
INI File  |  1994-04-14  |  22KB  |  659 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = VIDEO
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the OEM INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26. ;-----------------------------------------------------------------------
  27. ; OPTION LIST
  28. ; -----------
  29. ; This section lists the OEM Option key names.  These keys are locale
  30. ; independent and used to represent the option in a locale independent
  31. ; manner.
  32. ;
  33. ;-----------------------------------------------------------------------
  34.  
  35. ;
  36. ; Option list order: Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced
  37. ;
  38. ; If you don't want to create a VRefresh or Interlaced value under the service
  39. ; parameters then use the value ""
  40. ;
  41.  
  42. [Options]
  43.     "Viper VLB 640x480x8, 60Hz"      = p9000,  8,   640,  480,  60,  0
  44.     "Viper VLB 640x480x8, 72Hz"      = p9000,  8,   640,  480,  72,  0
  45.     "Viper VLB 640x480x8, 75Hz"      = p9000,  8,   640,  480,  75,  0
  46.     "Viper VLB 640x480x16, 60Hz"     = p9000,  16,  640,  480,  60,  0
  47.     "Viper VLB 640x480x16, 72Hz"     = p9000,  16,  640,  480,  72,  0
  48.     "Viper VLB 640x480x16, 75Hz"     = p9000,  16,  640,  480,  75,  0
  49.     "Viper VLB 640x480x32, 60Hz"     = p9000,  32,  640,  480,  60,  0
  50.     "Viper VLB 640x480x32, 72Hz"     = p9000,  32,  640,  480,  72,  0
  51.     "Viper VLB 640x480x32, 75Hz"     = p9000,  32,  640,  480,  75,  0
  52.     "Viper VLB 800x600x8, 56Hz"      = p9000,  8,   800,  600,  56,  0
  53.     "Viper VLB 800x600x8, 60Hz"      = p9000,  8,   800,  600,  60,  0
  54.     "Viper VLB 800x600x8, 72Hz"      = p9000,  8,   800,  600,  72,  0
  55.     "Viper VLB 800x600x8, 75Hz"      = p9000,  8,   800,  600,  75,  0
  56.     "Viper VLB 800x600x16, 56 Hz"    = p9000,  16,  800,  600,  56,  0
  57.     "Viper VLB 800x600x16, 60 Hz"    = p9000,  16,  800,  600,  60,  0
  58.     "Viper VLB 800x600x16, 72 Hz"    = p9000,  16,  800,  600,  72,  0
  59.     "Viper VLB 800x600x16, 75 Hz"    = p9000,  16,  800,  600,  75,  0
  60.     "Viper VLB 800x600x32, 56 Hz"    = p9000,  32,  800,  600,  56,  0
  61.     "Viper VLB 800x600x32, 60 Hz"    = p9000,  32,  800,  600,  60,  0
  62.     "Viper VLB 800x600x32, 72 Hz"    = p9000,  32,  800,  600,  72,  0
  63.     "Viper VLB 800x600x32, 75 Hz"    = p9000,  32,  800,  600,  75,  0
  64.     "Viper VLB 1024x768x8, 60 Hz"    = p9000,  8,  1024,  768,  60,  0
  65.     "Viper VLB 1024x768x8, 70 Hz"    = p9000,  8,  1024,  768,  70,  0
  66.     "Viper VLB 1024x768x8, 72 Hz"    = p9000,  8,  1024,  768,  72,  0
  67.     "Viper VLB 1024x768x8, 75 Hz"    = p9000,  8,  1024,  768,  75,  0
  68.     "Viper VLB 1024x768x16, 60 Hz"   = p9000,  16, 1024,  768,  60,  0
  69.     "Viper VLB 1024x768x16, 70 Hz"   = p9000,  16, 1024,  768,  70,  0
  70.     "Viper VLB 1024x768x16, 72 Hz"   = p9000,  16, 1024,  768,  72,  0
  71.     "Viper VLB 1024x768x16, 75 Hz"   = p9000,  16, 1024,  768,  75,  0
  72.     "Viper VLB 1280x1024x8, 55 Hz"   = p9000,  8,  1280,  1024, 55,  0
  73.     "Viper VLB 1280x1024x8, 60 Hz"   = p9000,  8,  1280,  1024, 60,  0
  74.     "Viper VLB 1280x1024x8, 72 Hz"   = p9000,  8,  1280,  1024, 72,  0
  75.     "Viper VLB 1280x1024x8, 75 Hz"   = p9000,  8,  1280,  1024, 75,  0
  76.  
  77. ;
  78. ; This maps detected options into the options we support
  79. ;
  80. ; Format: DetectedOption = MappedOption
  81. ;
  82.  
  83.  
  84. ;       *** This section is NOT required ***
  85.  
  86.  
  87.  
  88. ;
  89. ; Order of the information:
  90. ;
  91. ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported
  92. ;
  93.  
  94. [MiniportDrivers]
  95.     p9000  = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_IGNORE, 33, {p9000}, 0, %SystemRoot%\System32\IoLogMsg.dll , 7
  96.  
  97. ;-----------------------------------------------------------------------
  98. ; OPTION TEXT SECTION
  99. ; -------------------
  100. ; These are text strings used to identify the option to the user.  There
  101. ; are separate sections for each language supported.  The format of the
  102. ; section name is "OptionsText" concatenated with the Language represented
  103. ; by the section.
  104. ;
  105. ;-----------------------------------------------------------------------
  106.  
  107. [OptionsTextENG]
  108.     "Viper VLB 640x480x8, 60 Hz"       =  "Viper VLB   640x480, 256 colors, 60 Hz"
  109.     "Viper VLB 640x480x8, 72 Hz"       =  "Viper VLB   640x480, 256 colors, 72 Hz"
  110.     "Viper VLB 640x480x8, 75 Hz"       =  "Viper VLB   640x480, 256 colors, 75 Hz"
  111.     "Viper VLB 640x480x16, 60 Hz"      =  "Viper VLB   640x480, 16BPP, 60 Hz"
  112.     "Viper VLB 640x480x16, 72 Hz"      =  "Viper VLB   640x480, 16BPP, 72 Hz"
  113.     "Viper VLB 640x480x16, 75 Hz"      =  "Viper VLB   640x480, 16BPP, 75 Hz"
  114.     "Viper VLB 640x480x32, 60 Hz"      =  "Viper VLB   640x480, 32BPP, 60 Hz"
  115.     "Viper VLB 640x480x32, 72 Hz"      =  "Viper VLB   640x480, 32BPP, 72 Hz"
  116.     "Viper VLB 640x480x32, 75 Hz"      =  "Viper VLB   640x480, 32BPP, 75 Hz"
  117.     "Viper VLB 800x600x8, 56 Hz"       =  "Viper VLB   800x600, 256 colors, 56 Hz"
  118.     "Viper VLB 800x600x8, 60 Hz"       =  "Viper VLB   800x600, 256 colors, 60 Hz"
  119.     "Viper VLB 800x600x8, 72 Hz"       =  "Viper VLB   800x600, 256 colors, 72 Hz"
  120.     "Viper VLB 800x600x8, 75 Hz"       =  "Viper VLB   800x600, 256 colors, 75 Hz"
  121.     "Viper VLB 800x600x16, 56 Hz"      =  "Viper VLB   800x600, 16BPP, 56 Hz"
  122.     "Viper VLB 800x600x16, 60 Hz"      =  "Viper VLB   800x600, 16BPP, 60 Hz"
  123.     "Viper VLB 800x600x16, 72 Hz"      =  "Viper VLB   800x600, 16BPP, 72 Hz"
  124.     "Viper VLB 800x600x16, 75 Hz"      =  "Viper VLB   800x600, 16BPP, 75 Hz"
  125.     "Viper VLB 800x600x32, 56 Hz"      =  "Viper VLB   800x600, 32BPP, 56 Hz"
  126.     "Viper VLB 800x600x32, 60 Hz"      =  "Viper VLB   800x600, 32BPP, 60 Hz"
  127.     "Viper VLB 800x600x32, 72 Hz"      =  "Viper VLB   800x600, 32BPP, 72 Hz"
  128.     "Viper VLB 800x600x32, 75 Hz"      =  "Viper VLB   800x600, 32BPP, 75 Hz"
  129.     "Viper VLB 1024x768x8, 60 Hz"      =  "Viper VLB  1024x768, 256 colors, 60 Hz"
  130.     "Viper VLB 1024x768x8, 70 Hz"      =  "Viper VLB  1024x768, 256 colors, 70 Hz"
  131.     "Viper VLB 1024x768x8, 72 Hz"      =  "Viper VLB  1024x768, 256 colors, 72 Hz"
  132.     "Viper VLB 1024x768x8, 75 Hz"      =  "Viper VLB  1024x768, 256 colors, 75 Hz"
  133.     "Viper VLB 1024x768x16, 60 Hz"     =  "Viper VLB  1024x768, 16BPP, 60 Hz"
  134.     "Viper VLB 1024x768x16, 70 Hz"     =  "Viper VLB  1024x768, 16BPP, 70 Hz"
  135.     "Viper VLB 1024x768x16, 72 Hz"     =  "Viper VLB  1024x768, 16BPP, 72 Hz"
  136.     "Viper VLB 1024x768x16, 75 Hz"     =  "Viper VLB  1024x768, 16BPP, 75 Hz"
  137.     "Viper VLB 1280x1024x8, 55 Hz"     =  "Viper VLB 1280x1024, 256 colors, 55 Hz"
  138.     "Viper VLB 1280x1024x8, 60 Hz"     =  "Viper VLB 1280x1024, 256 colors, 60 Hz"
  139.     "Viper VLB 1280x1024x8, 72 Hz"     =  "Viper VLB 1280x1024, 256 colors, 72 Hz"
  140.     "Viper VLB 1280x1024x8, 75 Hz"     =  "Viper VLB 1280x1024, 256 colors, 75 Hz"
  141.  
  142. ;---------------------------------------------------------------------------
  143. ; 1. Identify
  144. ;
  145. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  146. ;                as we are choosing currently.
  147. ;
  148. ; INPUT:         None
  149. ;
  150. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  151. ;                $($R1): Option Type (COMPUTER ...)
  152. ;                $($R2): Diskette description
  153. ;---------------------------------------------------------------------------
  154.  
  155. [Identify]
  156.     ;
  157.     ;
  158.     read-syms Identification
  159.  
  160.     set Status     = STATUS_SUCCESSFUL
  161.     set Identifier = $(OptionType)
  162.     set Media      = #("Source Media Descriptions", 1, 1)
  163.  
  164.     Return $(Status) $(Identifier) $(Media)
  165.  
  166.  
  167.  
  168. ;------------------------------------------------------------------------
  169. ; 2. ReturnOptions:
  170. ;
  171. ; DESCRIPTION:   To return the option list supported by this INF and the
  172. ;                localised text list representing the options.
  173. ;
  174. ;
  175. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  176. ;
  177. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  178. ;                                STATUS_NOLANGUAGE
  179. ;                                STATUS_FAILED
  180. ;
  181. ;                $($R1): Option List
  182. ;                $($R2): Option Text List
  183. ;------------------------------------------------------------------------
  184.  
  185. [ReturnOptions]
  186.     ;
  187.     ;
  188.     set Status        = STATUS_FAILED
  189.     set OptionList     = {}
  190.     set OptionTextList = {}
  191.  
  192.     ;
  193.     ; Check if the language requested is supported
  194.     ;
  195.     set LanguageList = ^(LanguagesSupported, 1)
  196.     Ifcontains(i) $($0) in $(LanguageList)
  197.     goto returnoptions
  198.     else
  199.     set Status = STATUS_NOLANGUAGE
  200.     goto finish_ReturnOptions
  201.     endif
  202.  
  203.     ;
  204.     ; form a list of all the options and another of the text representing
  205.     ;
  206.  
  207. returnoptions = +
  208.     set OptionList     = ^(Options, 0)
  209.     set OptionTextList = ^(OptionsText$($0), 1)
  210.     set Status         = STATUS_SUCCESSFUL
  211.  
  212. finish_ReturnOptions = +
  213.     Return $(Status) $(OptionList) $(OptionTextList)
  214.  
  215.  
  216.  
  217. ;---------------------------------------------------------------------------
  218. ; MapToSupportedOption
  219. ;
  220. ; DESCRIPTION:   To map a hardware detected option to the NT Supported
  221. ;                option which represents it.
  222. ;
  223. ; INPUT:         $($0): Option
  224. ;
  225. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  226. ;                $($R1): Mapped Option
  227. ;
  228. ;---------------------------------------------------------------------------
  229.  
  230. [MapToSupportedOption]
  231.     ;
  232.     set Status = STATUS_FAILED
  233.     set MappedOption = $($0)
  234.  
  235.     ;
  236.     ; If the option is one we can support using one of our standard options
  237.     ; then map it to the standard option else map it to the default option
  238.     ; which is VGA.
  239.     ;
  240.  
  241.     set OptionList = ^(MapOfOptions, 0)
  242.     ifcontains $($0) in $(OptionList)
  243.     set MappedOption = #(MapOfOptions, $($0), 1)
  244.     else
  245.     set MappedOption = "VGA"
  246.     endif
  247.  
  248.     set Status = STATUS_SUCCESSFUL
  249.     Return $(Status) $(MappedOption)
  250.  
  251.  
  252.  
  253. [ServicesEntry]
  254.     CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0
  255.  
  256.  
  257. ;
  258. ; InstallOption:
  259. ;
  260. ; FUNCTION:  To copy files representing Options
  261. ;            To configure the installed option
  262. ;            To update the registry for the installed option
  263. ;
  264. ; INPUT:     $($0):  Language to use
  265. ;            $($1):  OptionID to install
  266. ;            $($2):  SourceDirectory
  267. ;            $($3):  AddCopy  (YES | NO)
  268. ;            $($4):  DoCopy   (YES | NO)
  269. ;            $($5):  DoConfig (YES | NO)
  270. ;
  271. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  272. ;                            STATUS_NOLANGUAGE |
  273. ;                            STATUS_USERCANCEL |
  274. ;                            STATUS_FAILED
  275. ;
  276.  
  277. [InstallOption]
  278.  
  279.     ;
  280.     ; Set default values for
  281.     ;
  282.     set Status       = STATUS_FAILED
  283.     set DrivesToFree = {}
  284.  
  285.     ;
  286.     ; extract parameters
  287.     ;
  288.     set Option   = $($1)
  289.     set SrcDir   = $($2)
  290.     set AddCopy  = $($3)
  291.     set DoCopy   = $($4)
  292.     set DoConfig = $($5)
  293.  
  294.     ;
  295.     ; Check if the language requested is supported
  296.     ;
  297.     set LanguageList = ^(LanguagesSupported, 1)
  298.     Ifcontains(i) $($0) in $(LanguageList)
  299.     else
  300.     set Status = STATUS_NOLANGUAGE
  301.     goto finish_InstallOption
  302.     endif
  303.     read-syms Strings$($0)
  304.  
  305.     ;
  306.     ; check to see if Option is supported.
  307.     ;
  308.  
  309.     set OptionList = ^(Options, 0)
  310.     ifcontains $(Option) in $(OptionList)
  311.     else
  312.     goto finish_InstallOption
  313.     endif
  314.     set OptionList = ""
  315.  
  316.     ;
  317.     ; Option has been defined already
  318.     ;
  319.     set MiniportDriver    = #(Options, $(Option), 1)
  320.     set BitsPerPel        = #(Options, $(Option), 2)
  321.     set XResolution       = #(Options, $(Option), 3)
  322.     set YResolution       = #(Options, $(Option), 4)
  323.     set VRefresh          = #(Options, $(Option), 5)
  324.     set Interlaced        = #(Options, $(Option), 6)
  325.  
  326.     set Type              = $(#(MiniportDrivers, $(MiniportDriver), 1))
  327.     set Group             =   #(MiniportDrivers, $(MiniportDriver), 2)
  328.     set ErrorControl      = $(#(MiniportDrivers, $(MiniportDriver), 3))
  329.     set Tag               =   #(MiniportDrivers, $(MiniportDriver), 4)
  330.     set InstalledDisplays =   #(MiniportDrivers, $(MiniportDriver), 5)
  331.     set VgaCompatible     =   #(MiniportDrivers, $(MiniportDriver), 6)
  332.     set EventMessageFile  =   #(MiniportDrivers, $(MiniportDriver), 7)
  333.     set TypesSupported    =   #(MiniportDrivers, $(MiniportDriver), 8)
  334.  
  335.     read-syms ServicesEntry
  336.     detect    ServicesEntry
  337.  
  338. installtheoption = +
  339.  
  340.     ;
  341.     ; Code to add files to copy list
  342.     ;
  343.  
  344.     ifstr(i) $(AddCopy) == "YES"
  345.     set DoActualCopy = NO
  346.     set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  347.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  348.     ifstr(i) $(STATUS) == NO
  349.         set DoActualCopy = YES
  350.         goto addfiles
  351.     endif
  352.     ForListDo $(InstalledDisplays)
  353.         set FileToCheck = #(Files-DisplayDLLs, $($), 2)
  354.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  355.         ifstr(i) $(STATUS) == NO
  356.         set DoActualCopy = YES
  357.         endif
  358.     EndForListDo
  359.  
  360.     ;
  361.     ; tsk: check if VPRinst.exe and res.dat exist
  362.     ;
  363.  
  364.     set FileToCheck = #(Files-Install, install, 2)
  365.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  366.     ifstr(i) $(STATUS) == NO
  367.         set DoActualCopy = YES
  368.     endif
  369.  
  370.     set FileToCheck = #(Files-RESDAT, resdat, 2)
  371.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  372.     ifstr(i) $(STATUS) == NO
  373.         set DoActualCopy = YES
  374.     endif
  375.  
  376.  
  377.  
  378.  
  379. addfiles = +
  380.     ifstr(i) $(DoActualCopy) == NO
  381.         shell "subroutn.inf" DriversExist $($0) $(String1)
  382.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  383.         Debug-Output "VIDEO.INF: shelling DriversExist failed"
  384.         goto finish_InstallOption
  385.         endif
  386.  
  387.         ifstr(i) $($R0) == STATUS_CURRENT
  388.         else-ifstr(i) $($R0) == STATUS_NEW
  389.         set DoActualCopy = YES
  390.         else-ifstr(i) $($R0) == STATUS_USERCANCEL
  391.         Debug-Output "VIDEO.INF: User cancelled video installation"
  392.         goto finish_InstallOption
  393.         else
  394.         Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  395.         goto finish_InstallOption
  396.         endif
  397.     endif
  398.  
  399.     ifstr(i) $(DoActualCopy) == YES
  400.  
  401.         shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  402.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  403.         Debug-Output "VIDEO.INF: shelling DoAskSourceEx failed"
  404.         goto finish_InstallOption
  405.         endif
  406.  
  407.         ifstr(i) $($R0) == STATUS_SUCCESSFUL
  408.         set SrcDir = $($R1)
  409.         ifstr(i) $($R2) != ""
  410.             set DrivesToFree = >($(DrivesToFree), $($R2))
  411.         endif
  412.         else
  413.         Debug-Output "VIDEO.INF: User cancelled asking source."
  414.         goto finish_InstallOption
  415.         endif
  416.  
  417.         install Install-AddCopyOption
  418.         ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  419.         Debug-Output "VIDEO.INF: Adding video files to copy list failed"
  420.         goto finish_InstallOption
  421.         endif
  422.     else
  423.         set DoCopy = NO
  424.     endif
  425.  
  426.     endif
  427.  
  428.     ifstr(i) $(DoCopy) == "YES"
  429.     read-syms ProgressCopy$($0)
  430.     install Install-DoCopyOption
  431.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  432.         Debug-Output "Copying files failed"
  433.         goto finish_InstallOption
  434.     else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  435.         set Status = STATUS_USERCANCEL
  436.         goto finish_InstallOption
  437.     endif
  438.     endif
  439.  
  440.     ifstr(i) $(DoConfig) == "YES"
  441.  
  442.     ;
  443.     ; first run a privilege check on modifying the setup node
  444.     ;
  445.  
  446.     shell "registry.inf" CheckSetupModify
  447.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  448.         goto finish_InstallOption
  449.     endif
  450.  
  451.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  452.         goto finish_InstallOption
  453.     endif
  454.  
  455.     ;
  456.     ; first make a new video entry, the entry is created automatically
  457.     ; enabled
  458.     ;
  459.  
  460.     set ServiceNode   = $(MiniportDriver)
  461.     set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  462.  
  463.     set ServicesValues   = { +
  464.         {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  465.         {Start,          0, $(!REG_VT_DWORD),     $(!SERVICE_SYSTEM_START) }, +
  466.         {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  467.         {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  468.         {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
  469.         {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  470.         }
  471.  
  472.     set ParametersValues = { +
  473.         {InstalledDisplayDrivers,     0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, +
  474.         {VgaCompatible,               0, $(!REG_VT_DWORD),    $(VgaCompatible)     }, +
  475.         {DefaultSettings.BitsPerPel,  0, $(!REG_VT_DWORD),    $(BitsPerPel)        }, +
  476.         {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD),    $(XResolution)       }, +
  477.         {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD),    $(YResolution)       }  +
  478.         }
  479.  
  480.     ifstr(i) $(VRefresh) != ""
  481.         set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)}
  482.         set ParametersValues = >($(ParametersValues), $(VRefreshValue))
  483.     endif
  484.  
  485.     ifstr(i) $(Interlaced) != ""
  486.         set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)}
  487.         set ParametersValues = >($(ParametersValues), $(InterlacedValue))
  488.     endif
  489.  
  490.     set DeviceValues     = {}
  491.     set EventLogValues   = { +
  492.         {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  493.         {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  494.         }
  495.  
  496.     shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  497.                         $(ServicesValues)   +
  498.                         $(ParametersValues) +
  499.                         $(DeviceValues)     +
  500.                         $(EventLogValues)   +
  501.                         Device0
  502.  
  503.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  504.         Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  505.         goto finish_InstallOption
  506.     endif
  507.  
  508.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  509.         Debug-Output "MakeServicesEntry failed for video"
  510.         goto finish_InstallOption
  511.     endif
  512.  
  513.     ;
  514.     ;
  515.     ; then disable the previous video entry
  516.     ;
  517.  
  518.     ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  519.         ifstr(i) $(CurrentEntry) != VGA
  520.         ifstr(i) $(CurrentEntry) != ""
  521.             shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED)
  522.  
  523.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  524.             Debug-Output "Couldn't find DisableServicesEntry in registry.inf"
  525.             goto errorconfig
  526.             endif
  527.  
  528.             ifstr(i) $($R0) != STATUS_SUCCESSFUL
  529.             Debug-Output "DisableServices entry failed"
  530.             endif
  531.         endif
  532.         endif
  533.     endif
  534.  
  535.     goto configdone
  536.  
  537. errorconfig = +
  538.     ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  539.         shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED)
  540.         ifstr(i) $(CurrentEntry) != ""
  541.         shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START)
  542.         endif
  543.     endif
  544.     goto finish_InstallOption
  545.  
  546. configdone = +
  547.  
  548.     endif
  549.  
  550.     set Status = STATUS_SUCCESSFUL
  551.  
  552. finish_InstallOption = +
  553.  
  554.     ;
  555.     ; tsk: Run VLB1inst.exe
  556.     ;
  557.  
  558.     set FileToRun = #(Files-Install, install, 2)
  559.     RunProgram ExitCode "" "" $(!STF_WINDOWSSYSPATH)\$(FileToRun)
  560.  
  561.     ForListDo $(DrivesToFree)
  562.     LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  563.     EndForListDo
  564.  
  565.     Return $(Status)
  566.  
  567.  
  568. [Install-AddCopyOption]
  569.  
  570.     set STF_VITAL = ""
  571.     ;
  572.     ; Add the files to the copy list
  573.     ;
  574.     AddSectionKeyFileToCopyList   Files-DisplayMiniportDrivers   +
  575.                   $(MiniportDriver)              +
  576.                   $(SrcDir)                      +
  577.                   $(!STF_WINDOWSSYSPATH)\drivers
  578.  
  579.     ForListDo $(InstalledDisplays)
  580.     AddSectionKeyFileToCopyList   Files-DisplayDLLs          +
  581.                       $($)                       +
  582.                       $(SrcDir)                  +
  583.                       $(!STF_WINDOWSSYSPATH)
  584.  
  585.     EndForListDo
  586.  
  587.  
  588.     ;
  589.     ; tsk: Add the VLB1inst.exe and p9000res.dat file to the copy list
  590.     ;
  591.     AddSectionFilesToCopyList     Files-Install                  +
  592.                   $(SrcDir)                      +
  593.                   $(!STF_WINDOWSSYSPATH)
  594.  
  595.     AddSectionFilesToCopyList     Files-RESDAT                   +
  596.                   $(SrcDir)                      +
  597.                   $(!STF_WINDOWSSYSPATH)
  598.  
  599.     exit
  600.  
  601.  
  602. [Install-DoCopyOption]
  603.  
  604.     ;
  605.     ; Copy files in the copy list
  606.     ;
  607.     CopyFilesInCopyList
  608.     exit
  609.  
  610. ;**************************************************************************
  611. ; PROGRESS GUAGE VARIABLES
  612. ;**************************************************************************
  613.  
  614. [ProgressCopyENG]
  615.     ProCaption   = "Windows NT Setup"
  616.     ProCancel    = "Cancel"
  617.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  618.            "to cancel copying files?"
  619.     ProCancelCap = "Setup Message"
  620.     ProText1     = "Copying:"
  621.     ProText2     = "To:"
  622.  
  623. [StringsENG]
  624.     String1 = "Display"
  625.     String2 = "Please enter the full path to the OEM Display "+
  626.           "driver files.  Then choose Continue."
  627.  
  628. ;-----------------------------------------------------------------------
  629. ; SOURCE MEDIA DESCRIPTIONS
  630. ; -------------------------
  631. ; The OEM should list all the diskette labels here.  The source media
  632. ; description is used during copy to prompt the user for a diskette
  633. ; if the source is diskettes.
  634. ;
  635. ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1
  636. ;     2 = "Diskette 2 Label" , TAGFILE = disk2
  637. ;     ...
  638. ;-----------------------------------------------------------------------
  639.  
  640. ;--------------------------------------------------------------------
  641. ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL
  642. ; SPREAD SHEETS
  643. ;--------------------------------------------------------------------
  644.  
  645. [Source Media Descriptions]
  646.     1  = "Viper VLB NT Drivers", TAGFILE = disk1
  647.  
  648. [Files-DisplayDLLs]
  649. p9000 = 1, p9000.dll, SIZE=73000
  650.  
  651. [Files-DisplayMiniportDrivers]
  652. p9000 = 1, p9000.sys, SIZE=25000
  653.  
  654. [Files-Install]
  655. install = 1, vprinstl.exe, SIZE=31000
  656.  
  657. [Files-RESDAT]
  658. resdat = 1, viperres.dat, SIZE=21000
  659.